Grid computing is a form of computer networking. Whereas conventional computer networks focus on communication between devices, grid computing typically harnesses the processing power of multiple computers within a network, and can thus be used for solving problems which are too intensive for any stand-alone machine. Grid computing also involves the sharing of computer resources. A single computer user whose normal requirements for computer processing power are fairly minor may occasionally have more substantial needs, and the existence of a computer grid enables the user to “borrow” external computer resources for a period of time.
Grid computing has typically been applied to scientific or technical problems that require a large number of computer processing cycles or access to large amounts of data. An example of a grid computing project is the SETI @Home project, in which computer users connected to the Internet donate the unused processing power of their computers to process data associated with signals coming from outer space, thereby aiding in the search for signs of extraterrestrial life. In a typical grid computing application, a large problem is divided and farmed out to a large number of computers, before the results are returned and collated. Grid computing can be confined to the network of computer workstations within a corporation or it can be a public collaboration.
Whereas the Internet enables the exchange of information, grid computing enables the exchange of computer power, data storage, and access to large databases, without users having to search for these resources manually. However, existing systems and methods, have not fully addressed the issues relating to grid computing. Current unresolved issues include the inability to conduct interactive sessions on a grid computing network, as well as the designation of appropriate methods for controlling and managing the allocation of resources. Additionally, the prevention of access to resources by users who have malicious intent as well as the optimization of the use of resources by matching a user's requirements efficiently with available resources are desirable.